
if __name__ == '__main__':
    # 定义一个简单的函数，使用位置参数
    def add_numbers(a, b):
        return a + b


    result = add_numbers(3, 5)
    print("使用位置参数调用函数结果：", result) # 使用位置参数调用函数结果： 8


    # 定义一个使用默认参数的函数
    def greet(name, message="Hello"):
        return f"{message}, {name}!"


    print(greet("A")) # Hello, A!
    print(greet("B", "Hi")) # Hi, B!


    # 定义一个使用可变参数的函数
    def calculate_sum(*args):
        total = 0
        for num in args:
            total += num
        return total


    print("使用可变位置参数计算总和：", calculate_sum(1, 2, 3, 4)) # 使用可变位置参数计算总和： 10


    # 定义一个使用关键字可变参数的函数
    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")


    print_info(name="C", age=30, city="BeiJing")
    '''
    name: C
    age: 30
    city: BeiJing
    '''

    print("===================lambda==============")
    # 定义一个简单的 lambda 函数
    add = lambda x, y: x + y
    print("使用 lambda 函数计算两数之和：", add(2, 4))
    # 使用 lambda 函数计算两数之和： 6

    # 在 sorted 函数中使用 lambda 函数进行排序
    students = [
        {"name": "A", "age": 20},
        {"name": "B", "age": 18},
        {"name": "C", "age": 22}
    ]
    sorted_students = sorted(students, key=lambda student: student["age"])
    print("按年龄排序后的学生列表：", sorted_students)
    # 按年龄排序后的学生列表： [{'name': 'B', 'age': 18}, {'name': 'A', 'age': 20}, {'name': 'C', 'age': 22}]

    # 在 map 函数中使用 lambda 函数
    numbers = [1, 2, 3, 4]
    squared_numbers = list(map(lambda x: x ** 2, numbers))
    print("使用 lambda 函数计算列表元素的平方：", squared_numbers)
    # 使用 lambda 函数计算列表元素的平方： [1, 4, 9, 16]